
///238
//给你一个整数数组 nums，返回 数组 answer ，
// 其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。
//
//题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在  32 位 整数范围内。
//
//请 不要使用除法，且在 O(n) 时间复杂度内完成此题。
public class Solution {
    public int[] productExceptSelf(int[] nums) {
        int[] answer=new int[nums.length];
        int pre=1;
        for(int i=0;i<nums.length;i++){//前缀积
            answer[i]=pre;//注意这里没有*。因为一开始数组初始化是0，answer[i]是0，不是1
            pre*=nums[i];
        }
        int tail=1;
        for(int i=nums.length-1;i>=0;i--){//后缀积
            answer[i]*=tail;
            tail*=nums[i];
        }
        return answer;
    }
}
